/**********************************************************************************************/
// dgt_SyntezCAPlugin.h
//
// 
// Copyright Diamant Group 2007
/**********************************************************************************************/
#ifndef _DGT_SYNTEZCAPLUGIN_H_
#define _DGT_SYNTEZCAPLUGIN_H_

#include "dgt_SyntezPlugin.h"
#include "dgt_Algorithm.h"
#include "dgt_Circuit.h"
#include "dgt_SmartMacros.h"

SMART_CLASS( dgt_SyntezCAPlugin );

/**********************************************************************************************/
// Interface of plugin for syntez control automat
//
interface dgt_SyntezCAPlugin: public dgt_SyntezPlugin
{
	public://///////////////////////////////////////////////////////////////////////////////////
							dgt_SyntezCAPlugin( void ) {};

virtual						~dgt_SyntezCAPlugin( void ) {};

	public://///////////////////////////////////////////////////////////////////////////////////

		// Function for starting process of syntez 
		// inAlg - algorythm to input, inTable - logical switch table of triggers
		// returns schema of resulting device

virtual	dgt_Circuit_Ptr			Synthesize( dgt_Algorithm_Ptr inAlgorithm, dgt_Element_Ptr inTrigger ) = 0;

};

#endif // _DGT_SYNTEZCAPLUGIN_H_
